package juego;

import java.util.ArrayList;

public abstract class Movil extends Ubicable{
	
	//atributos de instancia	
	protected boolean vivo;
		
	//metodos
	public Movil(int x , int y) {
		super (x,y);
		this.vivo = true;		
	};
	
	public boolean estaVivo(){
		return this.vivo;
	};
	
	//retorna false por defecto. sera redefinidio por proyectil y Tripulado
	public boolean verLealtad(){
		return false;
	};
	
	protected void destruirse(ArrayList<Movil> lista){
		lista.remove(this);
		this.vivo = false;
	};
	
	public abstract Impacto impactoProvocado();
	
	protected abstract int impactar(ArrayList<Movil> listaDeMoviles, ArrayList<Botin> listaDeBotines);
	
	public abstract boolean esNaveEnemiga();
	
	public abstract boolean esProyectil();
	
	public abstract int recibirImpacto(Impacto impacto, ArrayList<Movil> listaDeMoviles, ArrayList<Botin> listaDeBotines);

	public abstract int vivir(ArrayList<Movil> listaDeMoviles,
			ArrayList<Botin> listaDeBotines);
			
}
